Communication game system

ABSTRACT

A communication game system includes a plurality of game apparatuses which can be communicated via a network and functions as a parent machine and as a child machine, for example. In the child machine, a moving track of an object to be operated is obtained in response to an input with a pointing device by a player, and transmitted to the parent machine. In the parent machine, a movement of the object is controlled by the moving track, and drawing information to draw a virtual game space including the moved object is transmitted to the child machine. In the child machine, a game screen including the object to be operated is generated and displayed on the basis of the received drawing information.

CROSS REFERENCE TO RELATED APPLICATION

This is a Continuation of application Ser. No. 13/535,898, filed Jun.28, 2012, which is a Divisional of U.S. application Ser. No. 11/499,656,filed Aug. 7, 2006, now U.S. Pat. No. 8,545,325, issued Oct. 1, 2013,which claims priority to Japanese Patent Application No. 2006-109125,filed Apr. 11, 2006, all of which are incorporated herein by reference.

TECHNICAL FIELD

The exemplary embodiments disclosed herein relate to a communicationgame system. More specifically, The exemplary embodiments disclosedherein relate to a communication game system which includes a pluralityof computers that can communicate with one another through acommunication network, in which a communication game in which aplurality of objects appear in a virtual game space.

One example of such kind of a communication game system is disclosed inthe document 1 (Japanese Patent Laying-open No. 2003-181146). Thetechnique in the document 1 is a network game system in which a gameserver connects with a communication terminal via a network. In the gameserver, a flag indicating information of a character (object) of eachterminal is managed, and only the information which is changed istransmitted to another terminal. More specifically, when an operationinstruction for moving a character B is input in a terminal B, a requestfor movement instruction is transmitted from the terminal B to the gameserver. In response to the request, the game server performs a movementprocess of the character B, and writes information for transmitting amovement changing instruction of the character B to another terminal Ato a flag table. Then, the game server transmits a movement changinginstruction and position information of the character B to the terminalA. Thus, in the terminal A, the movement of the character B isdisplayed.

However, when a network stands between the server and the terminal or aplurality of game apparatuses, a communication delay occurs to therebycause differences among the terminals and among the game apparatuses.For example, if a moving direction of the character is instructed by akey operation, even if a continuous input is made on the terminal, thereception of the movement instructing data is delayed due to acommunication delay, and the movement of the character may be stopped onthe way in the movement process of the game server. Then, such movementinformation different from the actual input may be transmitted toanother terminal.

On the other hand, there is a communication game system in which aserver or a parent machine collects operation data including a movementinstruction for a character from the terminal or the child machine toperform a game process on them as a lump, and transmits all the resultsto a terminal or a child machine. In such a system, when the processingresult data is not reached in time for the display timing from theserver or the parent machine due to the communication delay, it isdifficult for the terminal or the child machine to continue to move thecharacter, and in the terminal or the child machine, the character maystop moving unlikely to the actual input.

Therefore, it is an aspect of certain exemplary embodiments to provide anovel communication game system, game apparatus, management computer,storage medium storing a game program, and communication game controlmethod.

Another aspect of certain exemplary embodiments is to provide acommunication game system, a game apparatus, a management computer, astorage medium storing a game program, and a communication game controlmethod which can control the movement of an object without making aplayer sense a communication delay.

A communication game system of a first exemplary embodiment is acommunication game system including a management computer which controlsmovements of a plurality of objects appearing in a virtual game spaceand a game apparatus which is communicably connected with the managementcomputer and has an operating means causing a player to operate at leastone object out of the plurality of objects as an object to be operated.The game apparatus includes a track obtaining means and a tracktransmitting means. The track obtaining means obtains a moving track ofthe object to be operated input by the operating means. The tracktransmitting means transmits the moving track obtained by the trackobtaining means to the management computer. The management computercomprises a track receiving means, a movement controlling means, and adrawing information transmitting means. The track receiving meansreceives the moving track from the track transmitting means. Themovement controlling means controls a movement of the object to beoperated in the virtual game space by the moving track received by thetrack receiving means. The drawing information transmitting meanstransmits to the game apparatus drawing information to draw the virtualgame space including the object moved by the movement controlling means.The game apparatus further comprises a drawing information receivingmeans and a screen display means. The drawing information receivingmeans receives the drawing information from the drawing informationtransmitting means. The screen display means generates and displays agame screen including the object to be operated by the drawinginformation received by the drawing information receiving means.

More specifically, the communication game system (200: reference numeraldesignating a portion corresponding in the exemplary embodimentsdescribed later.) includes a management computer (10) and a gameapparatus (10). In the communication game system, a communication gamein which a plurality of objects appear in a virtual game space isexecuted. The player of the game apparatus operates at least one objectout of a plurality of objects (132) by an operating means (22). Themovements of the plurality of objects are managed by the managementcomputer. The management computer may be a server, for example, to beconnected with a game apparatus via a network (202). Or, if thecommunication game system includes not the server but a plurality ofgame apparatuses, any one of the game apparatuses may function as amanagement computer, that is, a parent machine. A track obtaining means(42, 54, 74, 88, S99) of the game apparatus obtains a moving track ofthe object to be operated input by the operating means. For example, theoperating means is a touch panel, and a route through which the objectto be operated of the game apparatus intends to move is obtained on thebasis of a plurality of coordinates which are continuously detected onthe touch panel. A track transmitting means (42, 64, 90, S91, S103,S113) transmits the moving track to the management computer. In responsethereto, a track receiving means (42, 64, 80, S7, S9) of the managementcomputer receives the moving track. A movement controlling means (42,82, S11) controls by the received moving track a movement of the objectto be operated of the game apparatus which has transmitted the track.Thus, the object moves along the moving track in the virtual game space.The drawing information transmitting means (42, 64, 84, S15) transmitsto the game apparatus drawing information to draw the virtual game spaceincluding the moved object. The drawing information includes informationrelating to a position, orientation and motion of an object appearing inthe game space, for example. In response thereto, a drawing informationreceiving means (42, 64, 92, S117, S119) of the game apparatus receivesthe drawing information from the parent machine. The screen displaymeans (42, 50, 52, 60, 76, S135) generates and displays a game screenincluding the object to be operated by the received drawing information.This makes it possible to display an object moving along the inputmoving track.

Thus, the moving track of the object is obtained from a game apparatuswhile the management computer controls the movement of the object. Thatis, a route through which the object intends to move is obtained inadvance, and therefore, it is possible to advance the movement of theobject even at the occurrence of a communication delay, and it ispossible to control the movement of the object without making the playerfeel a communication delay.

In one exemplary embodiment, the track transmitting means furthertransmits input end information when the input of the moving track fromthe operating means ceases, and the movement controlling means starts amovement of the object on the condition that the input end informationis received.

That is, a track transmitting means (S109-S113) of the game apparatusfurther transmits input end information to the management computer whenit is determined that the input of the moving track from the operatingmeans ceases. A movement controlling means (S45, S49, S65, S71) of themanagement computer starts a movement of the object on the conditionthat the input end information is received. Accordingly, after all ofthe input moving tracks are obtained in the game apparatus, the objectstarts to be moved in the management computer, preventing the movementof the object from being suspended due to a communication delay.

In another exemplary embodiment, track obtaining means does not acceptthe input of the moving track when the number of points on the movingtrack is equal to or more than a first threshold value.

That is, the track obtaining means does not accept the input of themoving track when it is determined that the number of points on themoving track is equal to or more than predetermined first thresholdvalue (S97). Thus, in this exemplary embodiment, the length of aninputable moving track is limited by setting an upper limit in thenumber of points obtained as the moving track, and therefore, themovable distance by one input can be restricted in an appropriate range.

In the other exemplary embodiment, the track transmitting meanssequentially transmits the moving track every time that a length of themoving track is equal to or more than a second threshold value duringobtainment by the track obtaining means.

That is, every time that it is determined that a length of the movingtrack is equal to or more than a second threshold value duringobtainment of the moving track (S101), the moving track is sequentiallytransmitted to the management computer by the track transmitting means.Thus, a moving track is sequentially transmitted every constant length,and therefore, it is possible to reduce amount of data to be transmittedat a time.

In a further exemplary embodiment, the track obtaining means cleared theobtained moving track of the object when a no-input state to the objectto be operated is shifted to an input state thereto.

That is, the track obtaining means (S83-S89) clears the moving track ofthe object obtained in the past when it is determined that an input ofthe moving track is started with respect to the object to be operated.That is, in the game apparatus, as to the object to be operated, theobtained moving track information can be stored until a next input ofthe moving track is started, and therefore, it is possible to perform agame process (a position prediction when the drawing information is notreceived, for example) on the basis of the moving track information asnecessary.

In another exemplary embodiment, the track transmitting means furthertransmits clear information of the moving track of the object when ano-input state to the object to be operated is shifted to an input statethereto, and the movement controlling means clears the received movingtrack of the object when the clear information of the moving track ofthe object is received.

That is, a track transmitting means (S83-S87, S91) transmits the clearinformation of the moving track of the object to the management computerwhen it is determined that a moving track is started to be input to theobject to be operated. The movement controlling means (S31-S35) of themanagement computer clears the received moving track of the object whenthe above-described clear information is received. Thus, in themanagement computer, when a next input of the moving track is started inthe game apparatus, the received moving track is cleared, and therefore,if the movement based on the received moving track is being executed,the movement can be stopped.

In the other exemplary embodiment, the track obtaining means specifiesan object selected as the object to be operated out of the plurality ofobjects, and obtains a moving track of the object.

Thus, the moving track for each object selected as the object to beoperated can be obtained by the track obtaining means (S85, S87, S99),and this makes it possible for the player of the game apparatus tooperate the plurality of characters by the moving track input.

In a further exemplary embodiment, the operating means is a pointingdevice, and the track obtaining means obtains a plurality of coordinatescontinuously detected from the input by the pointing device as themoving track.

More specifically, in the game apparatus, pointing devices such as atouch panel, etc. are adopted as an operating means, and a plurality ofcoordinates continuously detected from the input by the pointing deviceare obtained as a moving track. Thus, the player can input the movingtrack of the object by a continuous instruction of the coordinates withthe pointing device, capable of operating the movement of the objectwith an intuitive operation.

In another exemplary embodiment, the management computer furtherincludes an action instructing means for instructing an action of anobject to be operated of the management computer by a player, and themovement controlling means controls the movement of the object to beoperated of the management computer on the basis of a movementinstruction by the action instructing means.

More specifically, the management computer further includes an actioninstructing means (20). The management computer in this case is a gameapparatus functioning as a parent machine, and an object (134) operatedby the player of the parent machine appears together with an object ofthe game apparatus functioning as a child machine in the virtual gamespace. The movement of the object to be operated by a parent machine iscontrolled on the basis of a movement instruction by the actioninstructing means by the player of the parent machine (S3, S5).Accordingly, the object of the child machine is moved along the movingtrack while the object of the parent machine can be moved in real timeaccording to the action instruction, thus, it is possible to realize acommunication game capable of avoiding an adversely effect of acommunication delay, and being high in interest and strategy.

In another exemplary embodiment, the game apparatus further includes apredicting means for predicting at least a position of the object to beoperated on the basis of the moving track obtained by the trackobtaining means when the drawing information from the drawinginformation transmitting means is not received for a definite period oftime.

That is, the predicting means (S125-S131) of the game apparatus predictat least the position of the object to be operated of the game apparatuson the basis of the moving track when the drawing information is notreceived for a definite period of time. Therefore, even if the receptionof the drawing information is delayed, it is possible to preciselypredict a next position of the object to be operated on the basis of thestored moving track in the game apparatus. In addition, when the drawinginformation is received after the prediction, and even if the positionmodification is performed, high accuracy of the predicted positionallows the object to smoothly move.

A game apparatus of a second exemplary embodiment is a game apparatuswhich is communicably connected with a management computer managingmovements of a plurality of objects appearing in a virtual game space ina communication game system. The game apparatus comprises an operatingmeans, a track obtaining means, a track transmitting means, a drawinginformation receiving means, and a screen display means. The operatingmeans causes a player to operate at least one object among the pluralityof objects as an object to be operated. The track obtaining meansobtains a moving track of the object to be operated input by theoperating means. The track transmitting means transmits the moving trackobtained by the track obtaining means to the management computer. Thedrawing information receiving means receives from the managementcomputer drawing information to draw the virtual game space includingthe object moved by the moving track. The screen display means generatesand displays a game screen including the object to be operated by thedrawing information received by the drawing information receiving means.

The second exemplary embodiment is the game apparatus applied to thecommunication game system of the first exemplary embodiment, and canrealize a communication game which can move an object without making theplayer feel a communication delay similarly to the first exemplaryembodiment.

A storage medium storing a game program of a third exemplary embodimentis a storage medium storing a game program of a game apparatus which iscommunicably connected with a management computer managing movements ofa plurality of objects appearing in a virtual game space in acommunication game system, and has an operating means causing a playerto operate at least one object among the plurality of objects as anobject to be operated. The game program of the storage medium makes thegame apparatus function as a track obtaining means, a track transmittingmeans, a drawing information receiving means, and a screen displaymeans. The track obtaining means obtains a moving track of the object tobe operated input by the operating means. The track transmitting meanstransmits the moving track obtained by the track obtaining means to themanagement computer. The drawing information receiving means receivesdrawing information to draw the virtual game space including the objectmoved by the moving track from the management computer. The screendisplay means generates and displays a game screen including the objectto be operated by the drawing information received by the drawinginformation receiving means.

The third exemplary embodiment is the storage medium storing a gameprogram of the game apparatus of the second exemplary embodiment appliedin the communication game system of the first exemplary embodiment, andhas an advantage similarly to that in the second exemplary embodiment.

A management computer of a fourth exemplary embodiment is a managementcomputer which is communicably connected with a game apparatus having anoperating means causing a player to operate at least one object among aplurality of objects appearing in a virtual game space as an object tobe operated in a communication game system, and manages movements of theplurality of objects. The management computer comprises a trackreceiving means, a movement controlling means, and a drawing informationtransmitting means. The track receiving means receives a moving track ofthe object which is obtained and transmitted by the operating means ofthe game apparatus. The movement controlling means controls a movementof the object to be operated in the virtual game space by the movingtrack received by the track receiving means. The drawing informationtransmitting means transmits drawing information to draw the virtualgame space including the object moved by the movement controlling meansto the game apparatus.

The fourth exemplary embodiment is the management computer applied inthe communication game system in the first exemplary embodiment, and canrealize a communication game capable of moving an object without makingthe player feel a communication delay similarly to the first exemplaryembodiment.

A storage medium storing a game program of a fifth exemplary embodimentis a storage medium storing a game program of a management computerwhich is communicably connected with a game apparatus having anoperating means causing a player to operate at least one object among aplurality of objects appearing in a virtual game space as an object tobe operated in a communication game system, and manages movements of theplurality of objects. The game program of the storage medium causes themanagement computer to function as a track receiving means, a movementcontrolling means, and a drawing information transmitting means. Thetrack receiving means receives a moving track of the object which isobtained and transmitted by the operating means of the game apparatus.The movement controlling means controls a movement of the object to beoperated in the virtual game space by the moving track received by thetrack receiving means. The drawing information transmitting meanstransmits drawing information to draw the virtual game space includingthe object moved by the movement controlling means to the gameapparatus.

The fifth exemplary embodiment is the storage medium storing a gameprogram of the management computer of the fourth exemplary embodiment tobe applied in the communication game system of the first exemplaryembodiment, and has an advantage similarly to that in the fourthexemplary embodiment.

A storage medium storing a game program of a sixth exemplary embodimentis a storage medium storing a game program for a communication gamesystem including a plurality of game apparatuses which function as aparent machine managing movements of a plurality of objects appearing ina virtual game space and as a child machine having an operating means tocause a player to operate at least one object among the plurality ofobjects as an object to be operated. The game program of the storagemedium causes the game apparatus working as a child machine to functionas a track obtaining means, a track transmitting means, a drawinginformation receiving means, and screen display means. The trackobtaining means obtains a moving track of the object to be operatedinput by the operating means. The track transmitting means transmits themoving track obtained by the track obtaining means to the parentmachine. The drawing information receiving means receives from theparent machine drawing information to draw the virtual game spaceincluding the object moved by the moving track. The screen display meansgenerates and displays a game screen including the object to be operatedby the drawing information received by the drawing information receivingmeans. In addition, the game program causes the game apparatus workingas a parent machine to function as a track receiving means, a movementcontrolling means, and a drawing information transmitting means. Thetrack receiving means receives the moving track of the objecttransmitted from the child machine. The movement controlling meanscontrols a movement of the object to be operated in the virtual gamespace by the moving track received by the track receiving means. Thedrawing information transmitting means transmits to the child machinedrawing information to draw the virtual game space including the objectmoved by the movement controlling means.

The sixth exemplary embodiment is a storage medium storing a gameprogram for realizing the communication game system of the firstexemplary embodiment by the plurality of game apparatuses, and isapplied to each of the plurality of game apparatuses to make a gameapparatus function as a parent machine and a child machine. According tothe sixth exemplary embodiment, similarly to the above-described firstexemplary embodiment, the movement of the object can be controlledwithout making the player feel a communication delay.

A communication game control method of a seventh exemplary embodiment isa communication game control method of a game apparatus which iscommunicably connected with a management computer managing movements ofa plurality of objects appearing in a virtual game space in acommunication game system, and has an operating means causing a playerto operate at least one object out of the plurality of objects as anobject to be operated. The communication game control method includes atrack obtaining step, a track transmitting step, a drawing informationreceiving step, and a screen display step. The track obtaining stepobtains a moving track of the object to be operated input by theoperating means. The track transmitting step transmits the moving trackobtained by the track obtaining step to the management computer. Thedrawing information receiving step receives drawing information to drawthe virtual game space including the object moved by the moving trackfrom the management computer. The screen display step generates anddisplays a game screen including the object to be operated by thedrawing information received by the drawing information receiving means.

The seventh exemplary embodiment is a communication game control methodcorresponding to the second and third exemplary embodiments, and has anadvantage similar to that in the above-described second and thirdexemplary embodiment.

A communication game control method of a eighth exemplary embodiment isa communication game control method of a management computer which iscommunicably connected with a game apparatus having an operating meanscausing a player to operate at least one object among a plurality ofobjects appearing in a virtual game space as an object to be operated ina communication game system, and manages movements of the plurality ofobjects. The communication game control method includes a trackreceiving step, a movement controlling step, and a drawing informationtransmitting step. The track receiving step receives a moving track ofthe object which is obtained and transmitted by the operating means ofthe game apparatus. The movement controlling step controls a movement ofthe object to be operated in the virtual game space by the moving trackreceived by the track receiving step. The drawing informationtransmitting step transmits drawing information to draw the virtual gamespace including the object moved by the movement controlling step to thegame apparatus.

The eighth exemplary embodiment is a communication game control methodcorresponding to the fourth and fifth exemplary embodiment, and has anadvantage similar to that in the above-described the fourth and fifthexemplary embodiment.

A communication game control method of a ninth exemplary embodiment is acommunication game control method of a game apparatus in a communicationgame system including a plurality of game apparatuses which function asa parent machine managing movements of a plurality of objects appearingin a virtual game space and as a child machine having an operating meansto cause a player to operate at least one object among the plurality ofobjects as an object to be operated. The communication game controlmethod includes a track obtaining step, a track transmitting step, adrawing information receiving step, and a screen display step if thegame apparatus works as a child machine, and includes a track receivingstep, a movement controlling step, and a drawing informationtransmitting step if the game apparatus works as a parent machine. Thetrack obtaining step obtains a moving track of the object to be operatedinput by the operating means. The track transmitting step transmits themoving track obtained by the track obtaining step to the parent machine.The drawing information receiving step receives from the parent machinedrawing information to draw the virtual game space including the objectmoved by the moving track. The screen display step generates anddisplays a game screen including the object to be operated on the basisof the drawing information received by the drawing information receivingstep. The track receiving step receives the moving track of the objecttransmitted from the child machine. The movement controlling stepcontrols a movement of the object to be operated in the virtual gamespace by the moving track received by the track receiving step. Thedrawing information transmitting step transmits to the child machinedrawing information to draw the virtual game space including the objectmoved by the movement controlling step.

The ninth exemplary embodiment is a communication game control methodcorresponding to the first and sixth exemplary embodiments, and has anadvantage similarly to that in the above-described first and sixthexemplary embodiments.

According to certain exemplary embodiments, a movement instructioninformation of the object by a player is obtained as a moving track inthe game apparatus or the child machine while the movement of the objectis controlled by the moving track in the management computer or theparent machine, and therefore, even if a communication delay occurs, theobject can continues to move, capable of preventing the movement of theobject from being suspended during the movement. Thus, it is possible toprogress the game by moving an object without making the player feel acommunication delay.

The above described features, aspects and advantages of certainexemplary embodiments will become more apparent from the followingdetailed description when taken in conjunction with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an appearance view showing one example of a game apparatus ofone exemplary embodiment;

FIG. 2 is a block diagram showing one example of an electricconfiguration of FIG. 1 exemplary embodiment;

FIG. 3 is an illustrative view showing one example of a communicationgame system of one exemplary embodiment;

FIG. 4 is an illustrative view showing one example of a memory map of aROM of a memory card;

FIG. 5 is an illustrative view showing one example of a memory map of aRAM of a parent machine;

FIG. 6 is an illustrative view showing one example of a memory map of aRAM of a child machine;

FIG. 7 is an illustrative view showing one example of a game screendisplayed when a moving track is input to a child machine;

FIG. 8 is an illustrative view showing one example of a game screengenerated by drawing information in the child machine;

FIG. 9 is a flowchart showing one example of an operation of a mainprocessing of the parent machine;

FIG. 10 is a flowchart showing one example of an operation of a commandprocess in FIG. 9;

FIG. 11 is a flowchart showing one example of an operation of a childcharacter moving process in FIG. 9;

FIG. 12 is a flowchart showing one example of an operation of a mainprocessing of the child machine; and

FIG. 13 is a flowchart continued from FIG. 12.

DETAILED DESCRIPTION

Referring to FIG. 1, a game apparatus 10 of one exemplary embodimentincludes a first liquid crystal display (LCD) 12 and a second LCD 14.The LCD 12 and the LCD 14 are provided on a housing 16 so as to bearranged in a predetermined position in the housing. In this exemplaryembodiment, the housing 16 comprises an upper housing 16 a and a lowerhousing 16 b, and the LCD 12 is provided on the upper housing 16 a whilethe LCD 14 is provided on the lower housing 16 b. Accordingly, the LCD12 and the LCD 14 are closely arranged so as to be longitudinally(vertically) parallel with each other.

It should be noted that although the LCD is utilized as a display inthis exemplary embodiment, an EL (Electronic Luminescence) display and aplasma display may be used in place of the LCD.

As can be understood from FIG. 1, the upper housing 16 a has a planeshape little larger than a plane shape of the LCD 12, and has an openingformed so as to expose a display surface of the LCD 12 from one mainsurface thereof. On the other hand, the lower housing 16 b has a planeshape horizontally longer than the upper housing 16 a, and has anopening formed so as to expose a display surface of the LCD 14 at anapproximately center of the horizontal direction. Furthermore, the lowerhousing 16 b is provided with a sound release hole 18 and an operatingswitch 20 (20 a, 20 b, 20 c, 20 d, 20 e, 20L and 20R).

In addition, the upper housing 16 a and the lower housing 16 b arerotatably connected at a lower side (lower edge) of the upper housing 16a and a part of an upper side (upper edge) of the lower housing 16 b.Accordingly, in a case of not playing a game, for example, if the upperhousing 16 a is rotatably folded such that the display surface of theLCD 12 and the display surface of the LCD 14 are face to face with eachother, it is possible to prevent the display surface of the LCD 12 andthe display surface of the LCD 14 from being damaged such as a flaw,etc. It should be noted that the upper housing 16 a and the lowerhousing 16 b are not necessarily rotatably connected with each other,and may alternatively be provided integrally (fixedly) to form thehousing 16.

The operating switch 20 includes a direction instructing switch (crossswitch) 20 a, a start switch 20 b, a select switch 20 c, an actionswitch (A button) 20 d, an action switch (B button) 20 e, an actionswitch (L button) 20L, and an action switch (R button) 20R. The switches20 a, 20 b and 20 c are placed at the left of the LCD 14 on the one mainsurface of the lower housing 16 b. Also, the switches 20 d and 20 e areplaced at the right of the LCD 14 on the one main surface of the lowerhousing 16 b. Furthermore, the switches 20L and 20R are placed in a partof an upper edge (top surface) of the lower housing 16 b at a placeexcept for a connected portion with the upper housing 16 a, and lie ofeach side of the connected portion.

The direction instructing switch 20 a functions as a digital joystick,and is utilized for instructing a moving direction of a player character(or player object) to be operated by a player and a cursor, and so forthby operating any one of four depression portions. The start switch 20 bis formed by a push button, and is utilized for starting (restarting),temporarily stopping a game, and so forth. The select switch 20 c isformed by the push button, and utilized for a game mode selection, etc.

The action switch 20 d, that is, the A button is formed by the pushbutton, and allows the player character to perform an arbitrary movement(action), except for instructing the direction, such as hitting(punching), throwing, holding (obtaining), riding, jumping, cutting,etc. For example, in an action game, it is possible to apply aninstruction of jumping, punching, moving arms, etc. In a role-playinggame (RPG) and a simulation RPG, it is possible to apply an instructionof obtaining an item, selecting and determining arms or command, etc.The action switch 20 e, that is, the B button is formed by the pushbutton, and is utilized for changing a game mode selected by the selectswitch 20 c, canceling an action determined by the A button 20 d, and soforth.

The action switch (L button) 20L and the action switch 20R (R button)are formed by the push button, and the L button 20L and the R button 20Rcan perform the same operation as the A button 20 d and the B button 20e, and also function as a subsidiary of the A button 20 d and the Bbutton 20 e.

Also, on a top surface of the LCD 14, a touch panel 22 is provided. Asthe touch panel 22, any one of kinds of a resistance film system, anoptical system (infrared rays system) and an electrostatic capacitivecoupling system, for example, can be utilized. In response to anoperation by depressing, stroking, touching, hitting, and so forth witha stick 24, a pen (stylus pen), or a finger (hereinafter, referred to as“stick 24, etc.”) on a top surface of the touch panel 22, the touchpanel 22 detects a coordinates position operated by the stick 24, etc.(that is, touched) to output coordinates data corresponding to thedetected coordinates.

It should be noted that in this exemplary embodiment, a resolution ofthe display surface of the LCD 14 is 256 dots×192 dots, and a detectionaccuracy of the touch panel 22 (operation surface) is also rendered 256dots×192 dots in correspondence to the display surface (this is true forthe LCD 12). However, in FIG. 1, in order to simply represent the touchpanel 22, the touch panel 22 is displayed different from the LCD 14 insize, but the display screen of the LCD 14 and the operation screen ofthe touch panel 22 are the same in size. It should be noted that thedetection accuracy of the touch panel 22 may be lower than theresolution of the display surface, or higher than it.

Different game screens may be displayed on the LCD 12 and the LCD 14.Furthermore, by utilizing the two LCD 12 and LCD 14 as one screen, it ispossible to display a large monster (enemy character) to be defeated bythe player character. Accordingly, the player is able to point acharacter image such as a player character, an enemy character, an itemcharacter, texture information, an icon, etc. to be displayed on the LCD14 and select commands by operating the touch panel 22 with the use ofthe stick 24, etc. It should be noted that depending on the kind of thegame, the player is able to use the LCD 14 for other various inputinstructions, such as selecting or operating the icon displayed on theLCD 14, instructing a coordinates input, and so forth.

Thus, the game apparatus 10 has the LCD 12 and the LCD 14 as a displayportion of two screens, and by providing the touch panel 22 on an uppersurface of any one of them (LCD 14 in this exemplary embodiment), thegame apparatus 10 has the two screens (12, 14) and the operatingportions (20, 22) of two systems.

Furthermore, in this exemplary embodiment, the stick 24 can be insertedinto a housing portion (housing slot) 26 provided in proximity to a sidesurface (right side surface) of the upper housing 16 a, for example, andtaken out therefrom as necessary. It should be noted that in a case ofpreparing no stick 24, it is not necessary to provide the housingportion 26.

Also, the game apparatus 10 includes a memory card (or game cartridge)28. The memory card 28 is detachable, and inserted into a loading slot30 provided on a rear surface or a lower edge (bottom surface) of thelower housing 16 b. Although omitted in FIG. 1, a connector 46 (see FIG.2) is provided at a depth portion of the loading slot 30 for connectinga connector (not shown) provided at an end portion of the memory card 28in the loading direction, and when the memory card 28 is loaded into theloading slot 30, the connectors are connected with each other, andtherefore, the memory card 28 is accessible by a CPU core 42 (see FIG.2) of the game apparatus 10.

It should be noted that although not illustrated in FIG. 1, a speaker 32(see FIG. 2) is provided at a position corresponding to the soundrelease hole 18 inside the lower housing 16 b.

Furthermore although omitted in FIG. 1, for example, a batteryaccommodating box is provided on a rear surface of the lower housing 16b, and a power switch, a volume switch, an external expansion connector,an earphone jack, etc. are provided on a bottom surface of the lowerhousing 16 b.

FIG. 2 is a block diagram showing an electrical configuration of thegame apparatus 10. Referring to FIG. 2, the game apparatus 10 includesan electronic circuit board 40, and on the electronic circuit board 40,a circuit component such as a CPU core 42, etc. is mounted. The CPU core42 is connected to the connector 46 via a bus 44, and is connected witha RAM 48, a first graphics processing unit (GPU) 50, a second GPU 52,and an input-output interface circuit (hereinafter, referred to as “I/Fcircuit”) 54, an LCD controller 60, and a wireless communication portion64.

The connector 46 is detachably connected with the memory card 28 asdescribed above. The memory card 28 includes a ROM 28 a and a RAM 28 b,and although illustration is omitted, the ROM 28 a and the RAM 28 b areconnected with each other via a bus and also connected with a connector(not shown) to be connected with the connector 46. Accordingly, the CPUcore 42 gains access to the ROM 28 a and the RAM 28 b as describedabove.

The ROM 28 a stores in advance a game program for a game (virtual game)to be executed by the game apparatus 10, image data (character image,background image, item image, icon (button) image, message image, etc.),data of the sound (music) necessary for the game (sound data), etc. TheRAM (backup RAM) 28 b stores (saves) proceeding data and result data ofthe game.

The RAM 48 is utilized as a buffer memory or a working memory. That is,the CPU core 42 loads the game program, the image data, the sound data,etc. stored in the ROM 28 a of the memory card 28 into the RAM 48, andexecutes the loaded game program. The CPU core 42 executes a gameprocess while storing data (game data, flag data, etc.) generated orobtained in correspondence with a progress of the game in the RAM 48.

It should be noted that the game program, the image data, the sounddata, etc. are loaded from the ROM 28 a entirely at a time, or partiallyand sequentially as necessary so as to be stored into the RAM 48.However, like this exemplary embodiment, if the game apparatus 10 isable to directly connect a storage medium fixedly storing a program anddata to the CPU core 42, the CPU core 42 can directly access the storagemedium, and therefore, there is no need to transfer the program and thedata to the RAM 48 so as to be held.

Each of the GPU 50 and the GPU 52 forms a part of a rendering means, isconstructed by a single chip ASIC, for example, and receives a graphicscommand (construction command) from the CPU core 42 to generate gameimage data according to the graphics command. It should be noted thatthe CPU core 42 applies an image generation program (included in thegame program) to both of the GPU 50 and GPU 52.

Furthermore, the GPU 50 is connected with a first video RAM(hereinafter, referred to as “VRAM”) 56, and the GPU 52 is connectedwith a second VRAM 58. The GPU 50 and the GPU 52 respectively access thefirst VRAM 56 and the second VRAM 58 to obtain data necessary forexecuting the graphics command (image data: character data, texturedata, etc.). It should be noted that the CPU core 42 reads image datanecessary for rendering from the RAM 48, and writes it to the first VRAM56 and the second VRAM 58 via the GPU 50 and the GPU 52. The GPU 50accesses the VRAM 56 to generate game image data for display, and storesit in a rendering buffer in the VRAM 56. The GPU 52 accesses the VRAM 58to create game image data for rendering, and stores the image data in arendering buffer of the VRAM 58. A flame buffer or a line buffer may beemployed as a rendering buffer.

The VRAM 56 and the VRAM 58 are connected to the LCD controller 60. TheLCD controller 60 includes a register 62, and the register 62 consistsof one bit, for example, and stores a value of “0” or “1” (data value)according to an instruction of the CPU core 42. The LCD controller 60outputs the game image data created by the GPU 50 to the LCD 12, andoutputs the game image data created by the GPU 52 to the LCD 14 in acase that the data value of the register 62 is “0”. On the other hand,the LCD controller 60 outputs the game image data created by the GPU 50to the LCD 14, and outputs the game image data created by the GPU 52 tothe LCD 12 in a case that the data value of the register 62 is “1”.

It should be noted that the LCD controller 60 can directly read the gameimage data from the VRAM 56 and the VRAM 58, or read the game image datafrom the VRAM 56 and the VRAM 58 via the GPU 50 and the GPU 52.

Also, the VRAM56 and the VRAM58 may be provided in the RAM 48, or therendering buffer and a Z buffer may be provided in the RAM 48.

The I/F circuit 54 is connected with the operating switch 20, the touchpanel 22 and the speaker 32. Here, the operating switch 20 is theabove-described switches 20 a, 20 b, 20 c, 20 d, 20 e, 20L and 20R, andin response to an operation of the operating switch 20, a correspondingoperation signal (operation data) is input to the CPU core 42 via theI/F circuit 54. Furthermore, operation data output from the touch panel22 (coordinates data) is input to the CPU core 42 via the I/F circuit54. In addition, the CPU core 42 reads from the RAM 48 the sound datanecessary for the game such as a game music (BGM), a sound effect orvoices of a game character (onomatopoeic sound), etc., and outputs itfrom the speaker 32 via the I/F circuit 54.

The wireless communication portion 64 is a communication means forwirelessly sending and receiving data with other game apparatuses 10 orcommunications equipment. The wireless communication portion 64modulates communication data to be transmitted to the opponent into aradio signal to send it from an antenna, and receives a radio signalfrom the opponent by the same antenna to demodulate it to communicationdata. Via the wireless communication portion 64, the game apparatus 10sends and receives data with other game apparatuses 10 to execute acommunication game. The wireless communication portion 64 is compatiblewith IEEE 802.11 (Wi-Fi), for example, and can send and receive datawith other game apparatuses 10 and communications equipment by awireless LAN. The game apparatus 10 may execute a communication gamewith another nearby game apparatus 10, for example, by the wireless LAN.Also, the game apparatus 10 can send and receive data with othercomputer (server and game apparatus 10, etc.) over the Internet byutilizing the TCP/IP Protocol. Accordingly, the game apparatus 10 canaccess an Internet service provider (ISP) through a wireless LAN accesspoint, such as a household LAN, a public wireless LAN, or the like so asto be connected to a network such as, the Internet or the WAN (Wide AreaNetwork) via the ISP. This allows a game apparatus 10 to play acommunication game with another game apparatus 10 which is connected tothe Internet away from the game apparatus 10.

It should be noted that the wireless communication portion 64 may workaccording to other wireless communication standards such as Bluetooth,for example, in place of the wireless LAN standard.

Also, the wireless communication portion 64 can execute a wirelesscommunication on the basis of a time division multiple access system,for example. The communication game with another nearby game apparatus10 may be executed by the wireless communication system. For example,each game apparatus 10 is assigned a time slot during one communicationcycle, and by the assigned slot, its own data is transmitted. It shouldbe noted that for more information, a technique of such a wirelesscommunication is described in detail in Japanese Patent Publication No.2004-135778 and 2004-136009 by the present applicant.

With the use of a plurality of game apparatuses 10 as described above, acommunication game system 200 of this exemplary embodiment isconstructed. That is, as shown in FIG. 3, in the communication gamesystem 200, a plurality of game apparatuses 10 are connected so as to becommunicated with each other via a network 202 such as the Internet. Itshould be noted that each game apparatus 10 is wirelessly connected tothe network 202 through an access point not shown.

A communication game in which a plurality of objects appear in thevirtual game space is executed among the plurality of game apparatuses10. One or more objects out of the plurality of objects is assigned toeach game apparatus 10 as an object to be operated. That is, a player ofeach game apparatus 10 operates one or more objects as a player objectof his own.

Also, in this exemplary embodiment, one of the plurality of gameapparatuses 10 becomes a parent machine, and the others are childmachines. This enables data to be transmitted and received between theparent machine and the child machines. It should be noted that whetheror not user's own apparatus is a parent machine or a child machine isselected by each player on a selection screen, for example.

Management of the game space is performed in the parent machine so as toprovide continuity among the plurality of game apparatuses 10 withoutdiscrepancy. More specifically, the parent machine manages an action,such as movements of the plurality of objects within the game space.Each child machine transmits to the parent machine operation informationas to the object input by the player in the child machine. The parentmachine receives the operation information from each of the childmachines, and moves the object corresponding to the child machine on thebasis of the received operation information. In addition, the parentmachine updates a state of the game space in which each object is moved,and generates drawing information to draw a game space including themoved object to transmit the drawing information to each of childmachines. Each child machine receives the drawing information togenerate and display a game screen by the drawing information. Thus, ineach of the game apparatuses 10, a consistent game screen insynchronization with the parent game machine is displayed.

However, in the communication game system 200, a communication delayoccurs due to passing through a relay instrument on the network 202, acommunication distance, etc. For example, in such a method in whichevery time that an operation of the direction instructing switch 20 a ispresent in the child machine, or in a case that successive operationsare performed, the child machine transmits to the parent machineoperation information one by one, delay of reception of the operationinformation may occur in the parent machine due to a communicationdelay. Due to the delay of reception, in the parent machine, themovement of the object may stop on the way. If the movement is stoppedon the way, drawing information different from the operation inputactually input in the child machine may be transmitted to each of thechild machines.

Therefore, in this exemplary embodiment, in the child machine, a movingtrack of the object is obtained on the basis of the player's input. Morespecifically, in the child machine, a moving track indicating a routethrough which the object will move is obtained from the inputinformation, and the moving track is transmitted to the parent machine.In the parent machine, the object corresponding to the child machine ismoved along the moving track within the virtual game space, and drawinginformation to draw the virtual game space including the moved object istransmitted to each of the child machines. Thus, if the moving track ofthe object corresponding to each child machine is transmitted to theparent machine, information equivalent to a plurality of pieces ofoperation information can be transmitted with one input in comparisonwith a conventional case that operation information of each of thedirection instructing switches is transmitted to the parent machine oneby one. Thus, in the parent machine, even if a communication delayoccurs after reception of the moving track, the route through which theobject will move has already been obtained as a moving track, andtherefore, it is possible to prevent the movement of the object beingstopped halfway.

FIG. 4 to FIG. 6 show one example of a memory map. FIG. 4 shows oneexample of a memory map of the ROM 28 a of the memory card 28. The ROM28 a includes a game program storage area 70 and a data storage area 72.It should be noted that only a part of the memory map is shown in FIG.4, and the game program storage area 70 and the data storage area 72store in advance necessary various programs and data except for theillustrated ones.

In a storage area 74 of the game program storage area 70, an inputinformation obtaining program is stored. By the program, operationinformation from the operating switch 20 and operation information(including detected coordinates) detected by the touch panel 22 areobtained as input information at regular time intervals (one frame,etc.). In the absence of an input by the player, information indicativeof a no-input is obtained.

In a storage area 76, a screen generating program is stored. By theprogram, a game screen is generated on the basis of the drawinginformation so as to be displayed on the LCD 12 or 14.

In a storage area 78, a program (parent machine program) to be executedwhen the game apparatus 10 functions as a parent machine is stored. In astorage area 80 of the parent machine program storing area 78, a movingtrack receiving program is stored. By the program, moving trackinformation of each object to be transmitted from each child machine isreceived.

In a storage area 82 of the parent machine program storing area 78, acharacter movement controlling program is stored. By the program, themovements of the plurality of characters (objects) existing in the gamespace are controlled. The movement of the object corresponding to thechild machine among the plurality of objects is controlled on the basisof the moving track received from the child machine. That is, the objectto be operated by a child machine (child object or child character)moves along the moving track in the virtual game space. The moving trackis a route through which the object will move as described above, and inthis exemplary embodiment, coordinates of each points on the movingtrack is two-dimensional coordinates (x, y) obtained by a player's inputto a two-dimensional map displayed on the LCD 14. The virtual game spaceis represented by a three-dimensional manner, and therefore, thecharacter movement controlling program transforms each point of theobtained moving track into three-dimensional coordinates (x, y, z) ofthe coordinates system in a virtual three-dimensional game space, andmoves the child object along the transformed moving track in thethree-dimensional coordinates.

Also, the movement of the object corresponding to the parent machineamong the plurality of objects in the game space is controlled on thebasis of the operation information of the direction instructing switch20 a among the operating switches 20 in this exemplary embodiment. Thatis, the object to be operated by the parent machine (parent object orparent character) is moved in a direction instructed by the operatingswitch 20 a.

It should be noted that as described later, in transmitting the movingtrack of the child object, information on individual points is notsequentially transmitted, but information on a plurality of points arecollectively transmitted, and therefore, the movement of the childobject is not performed in real time. On the other hand, in thisexemplary embodiment, the movement control of the parent object isdirectly executed in response to the operation information of theoperating switch 20 a, that is, the player of the parent machine canoperate the action including the movement of the parent object in realtime.

Thus, in this exemplary embodiment, the child character to be operatedby the child machine is moved on the route by the input of the movingtrack while the parent character to be operated by the parent machine ismoved in real time in response to an action instruction.

Accordingly, it is possible to realize a communication game capable ofavoiding an adversely effect of a communication delay, and being high ininterest and strategy. For example, the child character moves along theinput moving track to thereby follow the parent character, and theparent character attains a predetermined objective while avoidingcontacting with the child character.

It should be noted that in another exemplary embodiment, the movement ofthe parent object may be controlled on the basis of the moving trackobtained by the parent machine similarly to the child object. That is,the parent object is also not moved in real time.

In a storage area 84 of the parent machine program storing area 78, adrawing information transmitting program is stored. By the program,drawing information to draw a virtual game space is transmitted to eachchild machine. The drawing information is generated in the parentmachine after the movements of the plurality of objects are controlledby the character movement controlling program, and the state in thevirtual game space is updated. That is, the drawing information isinformation to draw the virtual game space after the objectcorresponding to the child machine is moved based on the moving trackreceived by the child machine. The drawing information includes anobject position in the virtual game space as a representative example.Also, information indicating a direction of an object and a motion tocause an object to perform a specific action may be included as anotherexample.

In a storage area 86, a program (child machine program) to be executedwhen the game apparatus 10 functions as a child machine is stored. In astorage area 88 of the child machine program storing area 86, a movingtrack obtaining program is stored. By the program, a moving track formoving the child object is obtained. More specifically, the moving trackis obtained in response to a trace input on the touch panel 22 of theLCD 14 on which a two-dimensional map of the game space is displayed.That is, the moving track is obtained on the basis of a plurality ofcoordinates successively detected by sliding the stick 24, etc. on thetouch panel 22 by the player. It should be noted that in this exemplaryembodiment, when inputting a moving track, the player first touches anicon image of the child object in advance to thereby select a childobject which he wants to operate. Then, the player moves the stick 24,etc. to a desired position by a desired route with the stick 24, etc.touched, and finally releases the stick 24, etc. from the touch panel 22to thereby end the trace input to the child object. Thus, in thisexemplary embodiment, a moving track is obtained from the plurality ofcoordinates continuously detected from the start of touching the childobject to the end of touching it. It should be noted that coordinates ofeach point detected on the touch panel 22 is a two-dimensionalcoordinates (X, Y) in the coordinates system on the touch panel 22.Accordingly, by checking the detected coordinates against theinformation of the two-dimensional map displayed on the LCD 14 wheninputting, the detected coordinates (X, Y) is transformed into thecoordinates (x, y) on a horizontal plane in the coordinates system ofthe virtual three-dimensional game space, and the moving trackrepresented by the transformed coordinates (x, y) is obtained.

Furthermore, in this exemplary embodiment, the moving track to beobtained has a maximum length. That is, if it is determined that acondition that the length of the moving track exceeds a predeterminedthreshold value is satisfied, even when an input is detected from thetouch panel 22, the input is not accepted as a moving track, and is notstored in the moving track information. The condition that theacceptance of the moving track is stopped is that the number of pointsobtained as a moving track exceeds a predetermined threshold value inthis exemplary embodiment.

In a storage area 90 of the child machine program storing area 86, amoving track transmitting program is stored. By the program, a movingtrack is transmitted to the parent machine. Also, in this exemplaryembodiment, every time that obtained moving track exceeds apredetermined length, the moving track information is sequentiallytransmitted to the parent machine. Thus, it is possible to reduce amountof data to be transmitted at once.

In a storage area 92 of the child machine program storing area 86, adrawing information receiving program is stored. By the program, drawinginformation transmitted from the parent machine is received. In thechild machine, a game screen showing a game space including the childobject corresponding to the child machine is generated on the basis ofthe drawing information, and the game screen is displayed on the LCDs 12and 14.

In a storage area 94 of the child machine program storing area 86, aprediction program is stored. In the child machine, when the drawinginformation from the parent machine cannot be received more than adefinite period of time due to a communication delay, at least aposition of each object is predicted by the program. Then, according tothe predicted result, a game screen is to be generated. Morespecifically, the child machine stores the moving track information ofthe child object of his own, and thus the position of the child objectis predicted by utilizing the moving track information. Originally, themovement of the child object is controlled in the parent machine on thebasis of the moving track information, and therefore, the prediction onthe basis of the moving track information is hardly missed, and aprecise prediction is possible. Also, predictions of other objects areperformed on the basis of histories of positions of the respectiveobjects. In addition, when the drawing information from the parentmachine is received after prediction, a next position is calculated byinterpolation between the predicted position and the position includedin the received drawing information. It should be noted that anorientation, etc. which the object faces except for the position may bepredicted on the basis of the history.

In a storage area 96 of the data storage area 72, map data is stored.The map data is map data of the virtual game space, and includesinformation indicating a state of geographic features, and a state(position, orientation, and so on) of a structure, etc. in the gamespace. In a storage area 98, image data is stored. Image data, such asthe parent character corresponding to the parent machine, a first childcharacter, a second child character, . . . etc. corresponding to thechild machine also are included.

FIG. 5 shows one example of a memory map of the RAM 48 in a case thatthe game apparatus 10 functions as a parent machine. It should be notedthat in FIG. 5 also, only a part of the memory map is shown, and datanecessary for the game processing is stored except for the illustratedones.

In a storage area 100, input information is stored. The inputinformation includes the operation information of the operating switch20 and the detected information from the touch panel 22 obtained by theinput information obtaining program.

In a storage area 102, moving track information obtained by the movingtrack receiving program is stored. The moving track information is amoving track of each child character received from each child machine,and is stored in correspondence with each character (first childcharacter, . . . ) of each child machine.

In a storage area 104, a track writing end flag is stored. The trackwriting end flag indicates an end of the input of the moving track tothe child character of the child machine, and is stored incorrespondence with each child character (first child character, . . . )of each child machine. The turning-on of the track writing end flagmeans that the input of the moving track is settled. On the other hand,the turning-off of the flag means that the input of the moving track isnot settled. In the parent machine, if the track writing end flag isturned on, a movement control of the child character corresponding tothe flag is executed. More specifically, when the input of the movingtrack is ended in the child machine, a track writing end command istransmitted to the parent machine. When the track writing end commandcorresponding to the child character is received from child machine inthe parent machine, a track writing end flag corresponding to the childcharacter of the child machine is turned on. The turning-on of the trackwriting end flag acts as a trigger to start movement of the childcharacter corresponding to the flag. On the other hand, when the inputof the moving track is started in the child machine, a line clearcommand is transmitted to the parent machine. When the line clearcommand corresponding to the child character is received from the childmachine in the parent machine, the track writing end flag with respectto the child character of the child machine is turned off.

In a storage area 106, generated drawing information is stored. Thedrawing information is information to draw a virtual game space, andincludes information to draw each object (parent character, first childcharacter, etc.) appearing in the virtual game space. More specifically,with respect to each player character (player object) to be operated bya player of each game apparatus 10, the drawing information includesinformation such as a position (coordinates), an orientation, a motion,etc. Here, the motion means the kind of a physical movement to beperformed by a character. For example, for movement, the motion isinformation to designate motion data for causing a character to swingits hands and move its legs.

FIG. 6 shows one example of a memory map of the RAM 48 in a case thatthe game apparatus 10 functions as a child machine. It should be notedthat in FIG. 6 also, a part of the memory map is displayed, and othernecessary data is stored.

In a storage area 110, input information obtained by the inputinformation obtaining program is stored. The input information includesthe operation information of the operating switch 20 and the detectedinformation from the touch panel 22.

In a storage area 112, a moving track obtained on the basis of the inputinformation by the moving track obtaining program is stored. The movingtrack information is stored in correspondence with a child character tobe operated now. As described above, in this exemplary embodiment, everytime that the length of the obtained moving track is above a constant,the moving track information which has already been stored issequentially transmitted to the parent machine. Also, the number of thepoints transmitted to the parent machine as a moving track is equal toor more than a constant value, the input of the moving track is notaccepted, and the moving track is not stored in the storage area 112even if the player continues to input.

In a storage area 114, the number of track point transmissions isstored. The number of track point transmissions means the number ofcoordinates points transmitted as a moving track. Every time that thelength of the moving track is above a certain distance, and the movingtrack is transmitted to the parent machine, the number of pointsincluded in the moving track is counted, and a cumulative total of thenumber of points which has been transmitted by now is stored as thenumber of track point transmissions.

In a storage area 116, previous point coordinates are stored. In thisexemplary embodiment, every time that the length of the obtained movingtrack is equal to or more than the constant value, a transmission isexecuted, and therefore, in order to be referred to a next calculationof the distance of the moving track, the current detected coordinatesare stored as previous point coordinates.

In a storage area 118, received drawing information is stored. Thereceived drawing information is drawing information received from theparent machine according to the drawing information receiving program.The drawing information (position, orientation, motion, etc.) for eachcharacter (parent character, first character, . . . ) appearing in thegame space is stored. In the child machine, a game screen showing a gamespace including the child character to be operated by the child machineis generated on the basis of the received drawing information anddisplayed on the LCDs 12 and 14.

In a storage area 120, position history information is stored. Morespecifically, a history of position information is stored for eachcharacter. The history of each character includes coordinates of atleast past two times (two frames immediately before, for example), thatis, previous and current coordinates. Also, in the storage area 120, ahistory of the orientation information of each character is also stored.In a prediction according to a prediction program, the history isreferred.

In a storage area 122, predicted information is stored. Morespecifically, information indicating at least a position of eachcharacter predicted according to the prediction program is stored.

In the communication game system 200, when moving a child character inthe child machine, the player operates the operating switch 20L, forexample. Thus, as shown in FIG. 7, a two-dimensional game screen showinga two-dimensional map of the game space is displayed on the LCD 14 onwhich the touch panel 22 is set, and a three-dimensional game screenshowing the virtual three-dimensional game space is displayed on theother LCD 12. The player draws a track on the map screen of the LCD 14to thereby input a moving track of the child character.

On the map screen, icons 130 a, 130 b, 130 c indicating child characterswhich are operable by a child machine are displayed in positionscorresponding to existing positions of the child character in thethree-dimensional game space. In the child machine, a plurality of childcharacter can be operated, and the icons 130 a, 130 b, 130 c of thethree child characters are displayed. On the other hand, on the LCD12,the three-dimensional game screen including a child character 132 acorresponding to the icon 130 a is displayed. It should be noted thatthe child character icons 130 a-c may be collectively denoted by areference numeral 130, and the child characters 132 a-c corresponding tothe respective icons 130 a-c may be collectively denoted as a referencenumeral 132.

When inputting a moving track of the child character 132, the playertouches the icon 130 corresponding to the child character 132 which heor she wants to move with the stick 24, etc., and slides the stick 24,etc. through a desired route to a desired position with the stick 24,etc. touched on. In FIG. 7, an input is made on the icon 130 acorresponding to the child character 132 a. In response to the movementof the stick 24, etc., the coordinates of the touch positions aresuccessively detected, and moving track information is obtained on thebasis of the detected successive coordinates. Also, on the map screen,the dot corresponding to the touch position is changed to apredetermined color (white, etc.) differently from a ground color, andthe input trace is drawn on the map screen as shown in the lower screenin FIG. 7. It should be noted that in FIG. 7, inputs of the moving trackwith respect to the child character 132 corresponding to other icons 130b, 130 c have already been finished, and the color of the moving tracksof the icons 130 b, 130 c are changed to a predetermined color (black,etc.) different from that of the icon 130 a. Furthermore, the respectiveicons 130 b, 130 c are moving along their moving tracks.

When the icon 130 is touched, the parent machine is informed that aninput of the moving track to the child character 132 is started withrespect to the corresponding child character 132 by a line clearcommand. Every time that the length of the obtained moving track isequal to or more than a certain value, the moving track information issequentially transmitted to the parent machine. It should be noted thatthe transmission is performed by a point addition command.

Then, the player of the child machine can end the input of the movingtrack by releasing the stick 24, etc. from the touch panel 22. When theinput of the moving track is ended, a writing end command is transmittedfrom the child machine to the parent machine to inform a settlement ofthe moving track input. In the parent machine, a movement control of thechild character is started on the basis of the moving track. Then,drawing information to draw a game space including the child charactermoved along the moving track is generated, and transmitted to therespective child machines. Game screens are generated to update thedisplays on the LCDs 12 and 14 on the basis of the generated drawinginformation in the parent machine and on the basis of the receiveddrawing information in the child machine.

As shown in FIG. 8, when a movement of the child character 132 a isstarted in the child machine, the upper and lower screens areinterchanged to display on the lower screen a scene in which the childcharacter 132 a moves along the moving track in the three-dimensionalgame space. It should be noted that FIG. 8 shows a scene in which themovement along the moving track has been completed. The child character132 a is a child character corresponding to the icon 130 a on which aninput of the moving track is performed in FIG. 7, and the childcharacter 132 b is a child character corresponding to the icon 130 b.The child character 132 a moves in front of the parent character 134 asa player character of the parent machine through the route shown by thedashed lines arrow (moving track) in the drawing. Furthermore, as shownin the upper screen in FIG. 8, each icon 130 moves along each movingtrack on the map screen, and reaches the surrounding of the icon 136corresponding to the parent character 134.

It should be noted that in this exemplary embodiment, a game in whichthe parent character 134 is searched and followed by the child character132 is performed, and therefore, the icon 136 of the parent character134 in the map screen is displayed only when the parent character 134exists within the display range of the child character 132 a of thelower screen. Additionally, in FIG. 7 and FIG. 8, for simplicity shake,the display of the child characters and their icons corresponding toother child machines are omitted. Also, as shown in FIG. 8, in thisexemplary embodiment, a parent character to be operated by a parentmachine is only one, but a plurality of characters may be operated inthe parent machine similarly to the child machine.

One example of game operations as to the parent machine and the childmachine in the communication game system 200 is described with referenceto flowcharts from FIG. 9 to FIG. 11, and FIG. 12 and FIG. 13.

FIG. 9 shows an operation of a main processing of the parent machine.When starting the main processing, the CPU core 42 of the parent machineexecutes an initialization process in a step Si. Here, a communicationconnecting process is performed to enable a parent machine to connectfor communication with each child machine via a network 202.Furthermore, initial values are set to the various variables.

The CPU core 42 executes processes from a following step S3 to a stepS19 for every definite period of time (1 frame=1/60 second, forexample). In the step S3, the CPU core 42 determines whether or not anaction instruction of the parent character 134 is performed on the basisof the input information of the storage area 100. It should be notedthat in the storage area 100, operation information from the operatingswitch 20 and operation information from the touch panel 22 are obtainedat regular time intervals according to the input information obtainingprogram.

If “YES” is determined in the step S3, the CPU core 42 executes a parentcharacter action process in the step S5. In this exemplary embodiment,an action such as moving the parent character 134 is controlled inresponse to an input of the operating switch 20. Accordingly, in a caseof the operation information from the direction instructing switch 20 a,for example, the parent character 134 is moved to an instructeddirection. In a case of the operation information from the action switch20 d, the parent character 134 executes a predetermined movement. If“NO” is determined in the step S3, the process directly proceeds to thestep S7.

In the step S7, the CPU core 42 determines whether or not a command isreceived from a child machine. If “YES” is determined, a command processis executed in the step S9 while if “NO” is determined, the processdirectly proceeds to the step S11. In the command process in the stepS9, a process depending on the kind of the received command isperformed. As described later, the child machine transmits to the parentmachine three kinds of commands in correspondence to the levels of aninput of the moving track to the child character 132. That is, when theinput of the moving track to the icon 130 of the child character isstarted, a line clear command is transmitted (step S91 in FIG. 12). Whenthe moving track input is continued, a point addition command istransmitted (step S103). When the moving track input is ended, a writingend command is transmitted (step S113 in FIG. 13).

FIG. 10 shows one example of an operation of a command process. Whenstarting the command process, the CPU core 42 first determines whetheror not the received command is a line clear in a step S31. That is, itis determined whether or not a moving track input is started in thechild machine from which the command is transmitted.

If “YES” is determined in the step S31, the CPU core 42 specifies thechild character 132 instructed by the child machine out of the pluralityof child characters 132 on the basis of the received coordinates in astep S33. More specifically, the icon 130 and the child character 132 towhich the moving track is started to be input are specified on the basisof the instructed coordinates in the child machine included in thereceived command and the coordinates of the icons 130 of the pluralityof the child characters corresponding to the child machines (stored inthe RAM 48). It should be noted that the child machine may specify theinstructed child character 132, and transmit a command includingidentification information of the instructed child character 132.

In a succeeding step S35, the CPU core 42 clears the moving track of theapplied child character 132 which has already been drawn. Morespecifically, the moving track information corresponding to the appliedchild character 132 is erased from the storage area 102. The storedinformation is the moving track information which was input to the childcharacter 132 in the past, and the child character 132 is moving orstopped moving on the basis of the moving track information.

Thus, in this exemplary embodiment, in response to a start of anothermoving track input to a certain child character in the child machine,the parent machine clears the obtained moving track information.Accordingly, even while a certain child character is moved along themoving track, when a new input of the moving track is started, themovement based on the old moving track can be stopped.

That is, in a step S37, the CPU core 42 stops the movement of theapplied child character 132. In a succeeding step S39, the CPU core 42turns the track writing end flag of the applied child character 132 offin the storage area 104. When the track writing end flag is turned on, amovement control of the applied child character 132 is performed. Thus,in the step S39, another input of the moving track is started by theplayer of the child machine, and therefore, by turning the track writingend flag off, the movement control of the applied child character 132 isnot performed. After completion of the process in the step S39, thecommand process is ended, and the process returns to the step S11 inFIG. 9.

On the other hand, if “NO” in the step S31, the CPU core 42 determineswhether or not the received command is a point addition in a step S41.That is, it is determined whether or not the information including theinput moving track is received. If “YES” is determined in the step S41,the CPU core 42 adds the received coordinates, that is, the moving trackto the moving track information of the applied child character 132 inthe storage area 102 in a step S43. In this exemplary embodiment, amoving track is sequentially transmitted from the child machine everytime the length of the moving track exceeds a predetermined length, andtherefore, in the storage area 102, a plurality of coordinates which aresuccessively obtained from the start of input to the child character132, that is, a moving track are accumulated. The coordinates of eachpoint showing the moving track are stored in association with anidentification number (identification information of each point), forexample. After completion of the step S43, the command process is ended,and the process returns to the step S11 in FIG. 9.

Also, if “NO” in the step S41, the CPU core 42 determines whether or notthe received command is a writing end in a step S45. That is, it isdetermined whether or not the input of the moving track is ended in thechild machine. If “YES” is determined in the step S45, in the presenceof the coordinates in the received command, the CPU core 42 adds thereceived coordinates to the moving track information of the appliedchild character 132 in the storage area 102 in a step S47. Then, in astep S49, the CPU core 42 turns on the track writing end flag of theapplied child character 132 in the storage area 104. In response to thechange of the track writing end flag from a turning-on to a turning-off,the movement of the child character 132 is started in the parentmachine. After completion of the step S49, or If “NO” is determined inthe step S45, the command process is ended, and the process returns tothe step S11 in FIG. 9.

In the step S11 in FIG. 9, the CPU core 42 executes a child charactermoving process, and controls a movement of the child character of eachof the child machines.

FIG. 11 shows one example of an operation of the child character movingprocess. When starting the child character moving process, the CPU core42 determines whether or not an unprocessed child character 132 existsin a step S61. That is, it is determined whether or not a childcharacter 132 which has not yet been set as an object to be processedout of the plurality of child characters 132 remains. If “YES” isdetermined in the step S61, the CPU core 42 selects one of theunprocessed child characters 132 so as to set it as a processing objectin a step S63.

In a succeeding step S65, the CPU core 42 determines whether or not thetrack writing end flag of the child character 132 as a processing objectis turned on. In this exemplary embodiment, as described above, when aninput of the moving track with respect to the child character 132 isended, and the moving track is settled, the track writing end flag isturned on. Furthermore, when another moving track input is started withrespect to the same child character 132, the moving track is notsettled, the track writing end flag is turned off. That is, turning-onof the track writing end flag means a state in which the movementcontrol of the child character 132 may be performed according to theinput moving track. If “NO” in the step S65, that is, if the movingtrack is being input and is not settled, the process returns to the stepS61.

On the other hand, if “YES” in the step S65, the movement of the childcharacter is started. Thus, in this exemplary embodiment, in response tothe end of the moving track input to the child machine, the movement ofthe child character is started. That is, after the entire input movingtrack (movement instructing information) is fetched, the movement of thechild character is started, preventing the movement of the childcharacter from being suspended by a communication delay.

It should be noted that when all the writing of the moving track isended, the movement is started, but the movement starting condition maybe changed as necessary. For example, in another exemplary embodiment,when it is determined that the moving track received by the parentmachine is a predetermined length taking an affect of the communicationdelay into account, that is, is a moving track with enough time toprevent the movement from suspending even when a predetermined timedelay occurs, the movement of the child character may be started beforethe entire moving track is obtained.

More specifically, in a step S67, the CPU core 42 determines whether ornot an unmoved position exists in the moving track information of thechild character 132 as an object to be processed. That is, it isdetermined whether or not a point which is not used for the movementcontrol remains out of the respective points of the moving track storedin the storage area 102. For example, since each point of the movingtrack is stored in association with the identification number, bycounting the number of points on which a movement process has beenperformed, or storing the identification number, it is possible todetermine the presence or absence of the unprocessed point. If “NO” inthe step S67, that is, if the movement of the child character 132according to the input moving track has already been finished, theprocess returns to the step S61.

On the other hand, if “YES” in the step S67, that is, if the movement ofthe child character 132 according to the moving track is to be startedor continued, the CPU core 42 transforms the coordinates of the movingtrack into the coordinates of the game space in a step S69. Each of thecoordinates of the moving track input and obtained on the map screen istwo-dimensional coordinates (x, y), and therefore, the point of thecoordinates with the identification number to be processed now aretransformed into the three-dimensional coordinates (x, y, z) in the gamespace. As described above, an identification number is corresponded toeach point of the moving track, and thus, by counting the number ofpoints which has already been processed or by storing the identificationnumber, it is possible to specify the point to be currently processednow out of the moving track.

Then, in a step S71, the CPU core 42 moves the child character along themoving track. That is, the coordinates after movement are calculated onthe basis of the current coordinates of the child character 132 and thetransformed coordinates of the moving track. The orientation aftermovement of the child character 132 is calculated on the basis of thecurrent coordinates, the transformed coordinates of the moving track,and the current orientation. After completion of the step S71, theprocess returns to the step S61.

On the other hand, If “NO” is determined in the step S61, that is, ifthe process is performed on all the child characters 132 in the frame,the child character moving process is ended, and then, the processreturns to the step S13 in FIG. 9.

Thus, in the parent machine, moving track information including aplurality of coordinates points is received in the command process inthe step S9, and if the child character starts to move in the childcharacter moving process in the step S11, the child character 132 ismoved according to the moving track. Thus, problems of missing thereception of the movement instructing information of the child character132 due to communication delay to thereby suspend the movement of thechild character 132 do not occur.

In the step S13 in FIG. 9, the CPU core 42 updates a state in the gamespace. That is, information such as a position, an orientation, a motionof each character in the game space stored in the RAM 48 is updated onthe basis of the results of the parent character action process in thestep S5, the child character moving process in the step S11, and etc.More specifically, the position information is the coordinates of theobject after movement in the virtual three-dimensional game space. Itshould be noted that out of the three-dimensional coordinates in thevirtual game space, (x, y) correspond to the two-dimensional coordinates(x, y) on the map screen, and therefore, it is possible to also graspthe position of each character on the map screen according to theposition information. The orientation information is a vector indicatingthe direction which the object faces, for example. The motioninformation is a physical movement to be executed according to an actionof the object. For a moving object, for example, information fordesignating the motion data to display moving physical movement isstored as motion information.

In the succeeding step S15, the CPU core 42 generates drawinginformation to draw the updated game space to transmit the drawinginformation to each of the child machines. The drawing information isgenerated in the storage area 106, and includes information such as aposition, an orientation, a motion, etc. of each character in the gamespace. For example, the drawing information relating to the entire gamespace is transmitted. Or, if the game space is larger than a displayrange of the screen, the drawing information relating to a part of thegame space may be transmitted. As one example, only the drawinginformation relating an area (area slightly larger than the displayarea) away from the position of the child character 132 to be operatedby the child machine by a predetermined distance or below may betransmitted to the child machine. In this case, only the informationrequired for display of each child machine and a prediction processthereafter are transmitted, and therefore, it is possible to reduceamount of communication data.

In the step S17, the CPU core 42 executes a screen generating process.That is, on the basis of the drawing information, game screens includingthe parent character 134 (a three-dimensional game screen and atwo-dimensional map screen in this exemplary embodiment) are generatedand displayed on the LCD12 and the LCD 14.

Then, in the step S19, the CPU core 42 determines whether or not thegame is ended. For example, it is determined a game clear condition or agame over condition is satisfied. If “NO” in the step S19, the processreturns to the step S3 in order to execute a game process of the nextframe. On the other hand, if “YES” is determined in the step S19, theCPU core 42 executes a game end process not shown to end the mainprocess.

FIG. 12 and FIG. 13 show one example of an operation of a main processof the child machine. When starting the main process, the CPU core 42 ofthe child machine executes an initialization process in a step S81. Morespecifically, a communication connecting process is performed to causethe child machine to establish a communication connection with theparent machine via the network 202. Also, initial values are set tovarious variables.

The CPU core 42 executes processes from steps S83 to S137 at regulartime intervals (one frame, for example). In the step S83, the CPU core42 determines whether or not a touch input is started on the basis ofthe input information in the storage area 110. That is, it is determinedwhether or not a no-input state to the touch panel 22 is shifted to aninput state thereto. It should be noted that the operation informationfrom the operating switch 20 and the operation information from thetouch panel 22 are obtained in the storage area 110 at regular timeintervals according to the input information obtaining program.

If “YES” is determined in the step S83, the CPU core 42 determineswhether or not the child character 132 is instructed in the step S85.That is, it is determined whether or not a position corresponding to theicon 130 on the two-dimensional map to be displayed on the LCD 14 istouched on the basis of the display position coordinates of the icon 130stored in the RAM 48 and the detected coordinates (touch coordinates)stored in the input information storing area 110.

If “YES” is determined in the step S85, that is, if an input of themoving track to the child character 132 is started, the CPU core 42specifies a instructed child character 132 out of the plurality of childcharacters 132 on the basis of the touch coordinates and a displayposition of each icon 130 in the step S87.

Thus, in this exemplary embodiment, when an input of the moving track isstarted, the selected child character is specified. Accordingly, in thechild machine, a moving track for each child character can be obtained.That is, the player of the child machine performs a moving track inputon an individual child character to operate each of the plurality ofchild characters.

In the succeeding step S89, the CPU core 42 clears the moving trackinformation with respect to the applied child character 132 stored inthe storage area 112. That is, the storage area for the applied childcharacter 132 is cleared in order to store the coordinates of therespective points on the moving track to be input from this time. Itshould be noted that in order to subsequently determine whether or not atrack input is being executed, an input flag to indicate that the inputof the moving track is being executed may be turned on.

Thus, in this exemplary embodiment, in the child machine, the obtainedmoving track information can be stored until another input of the movingtrack is performed to a certain child character. Thus, it is possible toutilize the moving track information for a game processing as necessary.For example, as described later, when the drawing information is notreceived for a definite period of time, it is possible to predict theposition of the child character by utilizing the moving trackinformation.

Furthermore, in the step S91, the CPU core 42 transmits to the parentmachine a line clear command and the detected coordinates with respectto the applied child character 132. By the transmission of the lineclear command, it is possible to inform the parent machine of the startof the moving track input of the applied child character 132. Aftercompletion of the step S91, the process proceeds to the step S117 inFIG. 13. It should be noted that if “NO” in the step S85, that is, ifthe part except for the child character icon 130 on the map screen istouched, the process directly proceeds to the step S117.

On the other hand, if “NO” in the step S83, the CPU core 42 determineswhether or not the touch state to the touch panel 22 is continued on thebasis of the input information in the storage area 110 in the step S93.If “YES” is determined in the step S93, the CPU core 42 determineswhether or not the track is being input in the step S95. For example, itis determined whether or not an input flag to indicate that a trackinput is being executed is turned on.

If “YES” is determined in the step S95, that is, if the input of themoving track is continued, the CPU core 42 determines whether or not thenumber of track point transmissions of the applied child character 132is equal to or less than a predetermined first threshold value in thestep S97. That is, it is determined that the number of the transmittedpoints out of the input moving track to the child character 132 does notexceed the predetermined limit value (first threshold value, 128 points,for example). Thus, in this exemplary embodiment, a movable distance byone track input is limited on the basis of the number of pointscomprising the moving track. That is, this puts restrictions on thelength of the inputable moving track. Accordingly, the movable distanceby one input can be restricted in an appropriate range. It should benoted that in another exemplary embodiment, no restriction may beimposed on the moving track.

If “YES” is determined in the step S97, the CPU core 42 obtains thedetected coordinates in the moving track information of the storage area112 in the step S99. The moving track information is stored for eachchild character 130. The coordinates of each of the points aretransformed from the two-dimensional coordinates (X, Y) of thecoordinates system of the touch panel 22 into the two-dimensionalcoordinates (x, y) of the coordinates system of the map screen, and thetransformed coordinates are stored in correspondence with theidentification number (serial number from the starting point) asidentification information of each point in the storage area 112.

In a step S101, the CPU core 42 determines whether or not the distancebetween the previous point coordinates and the current coordinates isequal to or more than a predetermined second threshold value. Theprevious point coordinates means the coordinates of the last point outof the moving track which has been transmitted to the parent machine. Itshould be noted that if the moving track has not been transmitted, thecoordinates at a start of the input are adopted. Thus, it is determined,here, whether or not a moving distance from the previous pointcoordinates to the current detected coordinates is equal to or more thanthe predetermined value (second threshold value). That is, it isdetermined whether or not the length of the moving track stored in thestorage area 112 after the previous transmission or after the start ofthe touch input reaches the predetermined length to be transmitted tothe parent machine. Thus, it is possible to sequentially transmit to theparent machine a moving track for each fixed length. That is, it ispossible to reduce amount of data to be transmitted as a moving track ata time. It should be noted that in another exemplary embodiment, amoving track obtained every predetermined time period may betransmitted, or the moving track can be collectively transmitted aftercompletion of all the input of the moving track.

If “YES” is determined in the step S101, the CPU core 42 transmits tothe parent machine a point addition command and the detected coordinates(moving track) with respect to the applied child character 132 in thestep S103. The moving track to be transmitted is a plurality ofcoordinates (strictly, coordinates transformed into the coordinatessystem of the map screen) which are continuously detected from thecoordinates next to the previous point coordinates (or input startingpoint) to the current detected coordinates. Every time that the movingtrack with a fixed length is obtained, the moving track is sequentiallytransmitted to the parent machine by the point addition command.

In the step S105, the CPU core 42 counts the number of track pointtransmissions of the applied child character 132 on the basis of thetransmitted moving track information. That is, the number of points onthe moving track transmitted to the parent machine is summed up, and isstored in the storage area 114. The determination in the step S97 isperformed on the basis of the number of track point transmissions.

In the step S107, the CPU core 42 stores the current detectedcoordinates in the storage area 116 as a previous point coordinates tobe referred when a determination of the length of a next moving track(S101) is performed. After completion of the step S107, the processproceeds to the step S117 in FIG. 13.

It should be noted that if “NO” in the step S95, that is, if the inputof the moving track is not performed, the process directly proceeds tothe step S117 in FIG. 13. Also, if “NO” in the step S97, that is, if thenumber of coordinates which has already been transmitted to the parentmachine as a moving track exceeds a limit, the acceptance of the movingtrack is stopped, and then, the process directly proceeds to the stepS117. If “NO” in the step S101, that is, if the length of the movingtrack from the previous point coordinates (or input starting point) issmaller than the constant value, the process proceeds to the step S117in FIG. 13 to pass on the transmission to the parent machine.

On the other hand, If “NO” is determined in the step S93, the CPU core42 determines whether or not the touch is ended on the basis of theinput information in the storage area 110 in the step S109 in FIG. 13.That is, it is determined whether or not an input state to the touchpanel 22 is shifted to no-input-state thereto. If “YES” is determined inthe step S109, the CPU core 42 determines whether or not the movingtrack input was performed in the step S111. For example, it isdetermined whether or not an input flag to indicate that the track inputis being executed is turned on.

If “YES” is determined in the step S111, that is, if the input of themoving track is ended, the CPU core 42 transmits to the parent machine awriting end command and coordinates (moving track) with respect to theapplied child character 132 in the step S113. The moving tracktransmitted along with the writing end command is a moving track whichis determined to be short of the predetermined length in the step S101,or a moving track obtained in the storage area 112 from the time whenthe moving track is transmitted in the step S103 to the time when it isdetermined in the step S97 that the number of coordinates pointstransmitted exceeds the predetermined value.

Also, in the step S115, the CPU core 42 resets the number of track pointtransmissions of the applied child character 132 stored in the storagearea 114 to zero. Also, since the input of the track is completed, aninput flag to indicate that the track input is being executed is turnedoff.

It should be noted that if “NO” in the step S109, or if “NO” in the stepS111, the process directly proceeds to the step S117.

In the step S117, the CPU core 42 determines whether or not the drawinginformation is received from the parent machine. If “YES” is determinedin the step S117, the CPU core 42 stores the received drawinginformation in the storage area 118 in the step S119.

Succeedingly, in the step S121, the CPU core 42 determines whether ornot a position prediction of the character is performed. As describedlater, the prediction is performed in a case that the drawinginformation has not been received for a definite period of time orabove. For example, it is determined whether or not a prediction flagindicating that the prediction is being executed is turned on, or it isdetermined that whether or not the predicted information is stored inthe storage area 122.

If “YES” is determined in the step S121, that is, if the drawinginformation is received when the prediction is performed, the CPU core42 modifies the position of each character on the basis of the receiveddrawing information and the predicted information in the step S123. Morespecifically, with respect to each of the characters, the coordinatesincluded in the drawing information and the coordinates stored in thepredicted information storage area 122 are interpolated with each otherto calculate the corrected coordinates. As to the child character to beoperated by the child machine of its own, slight error of the predictedposition occurs, and therefore, it is possible to smoothly move thechild character even after the position is modified in the step S123.Also, the predicted position is modified, and therefore, theabove-described prediction flag is turned off. It should be noted thatif “NO” in the step S121, that is, if the drawing information isreceived without any delay, the process directly proceeds to the stepS133.

On the other hand, if “NO” is determined in the step S117, the CPU core42 determines whether or not the drawing information has not beenreceived for a definite period of time in the step S125. That is, it isdetermined whether or not the drawing information was not received fromthe parent machine after a lapse of definite period of time from theprevious reception.

If “YES” is determined in the step S125, that is, if the reception ofthe drawing information is delayed by a communication delay, the CPUcore 42 determines whether or not any one of the child characterscorresponding to the child machine itself is being moved in the stepS127. For example, it is determined whether or not an unmoved point outof the moving track stored in the storage area 112 remains. By theidentification number of the position information of the child characterfrom the received drawing information, it is grasped that the positioncorresponds to which point on the moving track, and therefore, it ispossible to make the above-described determination.

If “YES” in the step S127, the CPU core 42 predicts the position of theapplied child character 132 from the moving track information stored inthe storage area 112 and the position history stored in the storage area120 in the step S129. The position prediction of the child character 132which is being moved is performed on the basis of the currentcoordinates and orientation, the previous coordinates and orientation inthe position history, and the coordinates on the moving track. Forexample, since in the moving track information storage area 112, themoving track transmitted to the parent machine is stored, coordinateshaving a next number to the number (that is, identification informationof each point on the moving track) corresponding to the currentcoordinates in the position history storage area 120 are obtained fromthe moving track information storage area 112, and the obtainedcoordinates may be regarded as the predicted position. The informationindicative of the predicted coordinates of the applied child character132 is stored in the predicted information storage area 122.

Thus, in this exemplary embodiment, even if the child machine misses thereception of the drawing information, a next position of the childcharacter can be accurately predicted on the basis of the moving trackinformation stored in the child machine. When the drawing information isreceived after the prediction, even if the position modification isperformed in the above-described step S123, high accuracy of thepredicted position allows the child character to smoothly move.

After completion of the process in the step S129, the process proceedsto the step S131. Also, if “NO” in the step S127, that is, the childcharacter 132 of the child machine is not moved, the process directlyproceeds to the step S131.

In the step S131, the CPU core 42 predicts the positions of the rest ofthe characters from the position history stored in the storage area 120.That is, position prediction of the child character 132 which has notmoved out of the child characters 132 to be operated by the childmachine, the parent character 134, and child characters of other childmachines are made on the basis of the current coordinates andorientation, and the previous coordinates and orientation stored in theposition history. The information indicative of the predictedcoordinates of each character is stored in the predicted informationstorage area 122. After completion of the step S131, the processproceeds to the step S133.

In the step S133, the CPU core 42 updates the position history in thestorage area 120. More specifically, the current coordinates of eachcharacter stored in the position history storage area 120 is stored asprevious coordinates. In addition, update of the current coordinates ofeach character is performed. If the drawing information is received, thecoordinates of each character included in the drawing information isstored as current coordinates. On the other hand, if the prediction isperformed, the predicted coordinates of each character stored in thepredicted information storage area 122 are stored as the currentcoordinates.

If the step S133 is ended or, if “NO” is determined in the step S125,the CPU core 42 executes a screen generating process in the step S135.Thus, game screens displayed on FIG. 7 or FIG. 8 is generated anddisplayed on the LCDs 12 and 14. In a case that the drawing informationis received from the parent machine, each character is arranged in theposition and direction on the basis of the drawing information in thethree-dimensional game space. In a case that the prediction isperformed, each character is arranged in the position and orientationbased on the predicted information in the three-dimensional game space.The position of the icon of each character on the map screen is alsoobtained from the position of the drawing information or the predictedinformation. It should be noted that the input trace on the map screenis drawn on the basis of the moving track information obtained in thestorage area 112 of the child machine. However, it may be possible thatthe parent machine transmits to each child machine the drawinginformation including the moving track information corresponding to eachchild machine, and the input trace is also drawn on the basis of thedrawing information.

In the step S137, the CPU core 42 determines whether or not the game isended. For example, it is determined whether or not a game endinstruction is transmitted from the parent machine. If “NO” in the stepS137, the process returns to the step S83 in FIG. 12 to execute a gameprocess in a next frame. On the other hand, if “YES” is determined inthe step S137, the CPU core 42 executes a game end process not shown toend the main process of the child machine.

According to this exemplary embodiment, in the child machine,information indicative of a movement of the child character is obtainedas a moving track by the player while the movement of the childcharacter is controlled by the moving track in the parent machine, andtherefore, and therefore, even if a communication delay occurs intransmission of the movement instructing information to the parentmachine, the child character may not stop in the course of the movement.More specifically, the parent machine receives a moving track, that is,a route through which a child character will move to therebycollectively obtain movement instructing information by enough time inadvance, and therefore, even if a communication delay occurs, it ispossible to continue to move the child character, thus preventing themovement of the child character from being suspended in the course ofmovement. Accordingly, it is possible to progress the game by moving thecharacter without making the player sense a communication delay.

Also, if a child machine misses reception of the drawing information todraw the game space in each child machine, the position of the childcharacter can be predicted on the basis of the moving track informationinput in each child machine. By utilizing the moving track obtained inthe child machine, the prediction of the position of the child characteris scarcely missed. Therefore, eve if the reception of the drawinginformation is missed, it is possible to move the child characterwithout making the player feel a communication delay.

Furthermore, in the child machine, the moving track of the childcharacter is input by successive coordinates instructions on the touchpanel 22. Thus, the player can operate the movement of the object withan intuitive operation.

It should be noted that in the above-described exemplary embodiment, thegame apparatus 10 is a game console, but in another exemplaryembodiment, the game apparatus 10 may be other types of computers, suchas a personal computer, a hand-held information terminal, a hand-heldtelephone, etc.

Additionally, in each of the above-described exemplary embodiment, inthe game apparatus 10, an input of the moving track is performed by thetouch panel 22 as one example of a pointing device for an input of themoving track. However, in another exemplary embodiment, any pointingdevice which allows a position instruction on the screen, such as amouse, a track pad, a tablet, etc. can be used. It should be noted thatby displaying a mouse pointer on a screen for input as necessary, aninput position is explicitly indicated. Furthermore, a button depressedstate is regarded as an input state, and a button released state isregarded as a no-input state, and whereby, it is possible to determinethe presence or absence of the input to the character by the pointingdevice.

In addition, in each of the above-described exemplary embodiments, thecommunication game system 200 comprises a parent machine which managesmovements of a plurality of objects existing in the game space and achild machine. However, in another exemplary embodiment, thecommunication game system 200 may comprise a server computer and a gameapparatus 10, and the server functions as a parent machine. It should benoted that a player and a parent object as an operational object do notexist in the server. More specifically, the server may perform amanagement process like obtaining moving track information from eachgame apparatus 10 as a terminal, managing a game space including amovement control of the plurality of objects, transmitting the drawinginformation to each of the game apparatuses 10.

Although certain exemplary embodiments have been described andillustrated in detail, it is clearly understood that the same is by wayof illustration and example only and is not to be taken by way oflimitation, the spirit and scope of the certain exemplary embodimentsbeing limited only by the terms of the appended claims.

What is claimed is:
 1. An information processing system comprising aplurality of terminal devices each of which includes an operation unitand a display unit and are configured to communicate over the Internet,wherein: each of the plurality of terminal devices comprises: an inputaccepter configured to accept an input operation from a touch-panel inthe operation unit; and a transmitter configured to transmit an inputoperation data based on the input operation that is accepted in theinput accepter to a computer; the computer comprises: a receiverconfigured to receive the input operation data from each of theplurality of terminal devices; an information processor configured toexecute an information process based on the received input operationdata; an image information generator configured to generate first imageinformation and second image information based on the informationprocess; and an image information transmitter configured to transmit thefirst image information to one of the plurality of terminal devices andthe second image information to another one of the plurality of terminaldevices; and each of the plurality of the terminal devices furthercomprises: an image information receiver configured to receive imageinformation transmitted from the computer to that terminal device; and adisplay controller configured to display an image based on the imageinformation received by the image information receiver of that terminaldevice on the display unit of that terminal device.
 2. The informationprocessing system according to claim 1, wherein: the transmitter of eachterminal device is configured to transmit by wireless communication; thereceiver of the computer is configured to receive by wirelesscommunication; the image information transmitter of the computer isconfigured to transmit by wireless communication; and the imageinformation receiver of each terminal device is configured to receive bywireless communication.
 3. The information processing system accordingto claim 2, wherein: the transmitter of each terminal device isconfigured to transmit wirelessly using Wi-Fi communication; thereceiver of the computer is configured to receive wirelessly using Wi-Ficommunication; the image information transmitter of the computer isconfigured to transmit wirelessly using Wi-Fi communication; and theimage information receiver of each terminal device is configured toreceive wirelessly using Wi-Fi communication.
 4. The informationprocessing system according to claim 1, wherein: the computer is aserver computer and each of the terminal devices is a portable displaydevice.
 5. The information processing system according to claim 1,wherein: the information process is a game process and the informationprocessor is configured to operate a character in a virtual space of thegame process based on the received input operation data.
 6. Theinformation processing system according to claim 5, wherein: at leastone of the first and second image information includes at least one ofthe position of the character, the orientation of the character, or themotion of the character.
 7. The information processing system accordingto claim 5, wherein: the game is a fighting game in real time.
 8. Theinformation processing system according to claim 5, wherein: the game isa fighting game using the input operation data from three or moreterminal devices and one of the terminal devices manages data of all ofthe terminal devices.
 9. The information processing system according toclaim 1, wherein: the input operation data is a coordinate data that isaccepted from the touch-panel.
 10. The information processing systemaccording to claim 1, wherein: the input operation data is one or morecommands based on the input operation.
 11. The information processingsystem according to claim 10, wherein: the input operation data are aplurality of commands based on the input operation.
 12. The informationprocessing system according to claim 1, wherein: each of the pluralityof the terminal devices further comprises: a communication delay reducerconfigured to perform a predetermined process for reducing acommunication delay.
 13. The information processing system according toclaim 12, wherein: the predetermined process is a prediction processusing the input operation data from each of the plurality of terminaldevices.
 14. The information processing system according to claim 1,wherein: the transmitter is configured to transmit a plurality of theinput operation data collectively.
 15. The information processing systemaccording to claim 14, wherein: the transmitter is configured totransmit a continuous input based on the plurality of the inputoperation data.
 16. A non-transitory storage medium storing computerreadable instructions which upon execution by an information processingsystem, including a computer and a plurality of terminal devices each ofwhich includes an operation unit and a display unit and are configuredto communicate over the Internet, provides functionality comprising: ateach of the plurality of the terminal devices: accept an input operationfrom a touch-panel in the operation unit; and transmit input operationdata based on the input operation that is accepted by the terminaldevice to the computer; at said computer: receive the input operationdata from each of the plurality of the terminal devices; execute aninformation process based on the received input operation data; generatefirst image information and second image information based on theinformation process; and transmit the first image information to one ofthe plurality of terminal devices and the second image information toanother one of the plurality of terminal devices; at the one of theplurality of terminal devices: receive the first image informationtransmitted from the computer to the one of the plurality of terminaldevices; and display a first image based on the first image informationreceived by the one of the plurality of terminal devices on the displayunit of the one of the plurality of terminal devices; and at the anotherone of the plurality of terminal devices: receive the second imageinformation transmitted from the computer to the another one of theplurality of terminal devices; and display a second image based on thesecond image information received by the another one of the plurality ofterminal devices on the display unit of the another one of the pluralityof terminal devices.
 17. A method upon execution by informationprocessing system, including a computer and a plurality of terminaldevices each of which includes an operation unit and a display unit andare configured to communicate over the Internet, the method comprising:at each of the plurality of the terminal devices: accepting an inputoperation from a touch-panel in the operation unit; and transmittinginput operation data based on the input operation that is accepted bythe terminal device to the computer; at said computer: receiving theinput operation data from each of the plurality of the terminal devices;executing an information process based on the received input operationdata; generating first image information and second image informationbased on the information process; and transmitting the first imageinformation to one of the plurality of terminal devices and the secondimage information to another one of the plurality of the terminaldevices; at the one of the plurality of terminal devices: receiving thefirst image information transmitted from the computer to the one of theplurality of terminal devices; and displaying a first image based on thefirst image information received by the one of the plurality of terminaldevices on the display unit of the one of the plurality of terminaldevices; and at the another one of the plurality of terminal devices:receiving the second image information transmitted from the computer tothe another one of the plurality of terminal devices; and displaying asecond image based on the second image information received by theanother one of the plurality of terminal devices on the display unit ofthe another one of the plurality of terminal devices.
 18. A computercapable of communication with a plurality of terminal devices each ofwhich that includes an operation unit and a display unit and areconfigured to communicate over the Internet, the computer comprising: aprocessing system, including a computer processor, the processing systembeing at least configured to: receive input operation data from each ofthe plurality of the terminal devices, the input operation data beingbased on an input operation from the operation unit of the each of theterminal devices; execute an information process based on the receivedinput operation data; generate first image information and second imageinformation based on the information process; transmit the first imageinformation to one of the plurality of terminal devices and the secondimage information to another one of the plurality of terminal devices sothat the one of the plurality of the terminal devices can receive thefirst image information and display a first image based on the firstimage information on the display unit of the one of the plurality ofterminal devices and the another one of the plurality of the terminaldevices can receive the second image information and display a secondimage based on the second image information on the display unit of theanother one of the plurality of terminal devices.